home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
others
/
crypt
/
pgp26uib
/
contrib
/
elm_nn
/
mailpgp
next >
Wrap
Text File
|
1994-06-19
|
2KB
|
116 lines
#!/usr/bin/perl
($visual = $ENV{'VISUAL'}) || ($visual = '/usr/ucb/vi');
$topgp = 0;
$blanks = 0;
$paragraphs = 1;
$blankcompress = 1;
$name=@ARGV[$#ARGV];
umask (077);
open (INPUT, "<$name");
open (OUTPUT, ">${name}.rply") || die "Cannot open ${name}.rply for output.\n";
while (<INPUT>) {
if (!$topgp && !m/^> -----BEGIN PGP .*-----/) {
if (m/^> *$/) {
if ($paragraphs) {
if ($blankcompress) {
if ($blanks == 0) {
print OUTPUT "\n";
$blanks = 1;
}
} else {
print OUTPUT "\n";
}
} else {
print OUTPUT;
}
} elsif (m/^ *$/) {
if ($blankcompress) {
if ($blanks == 0) {
print OUTPUT "\n";
$blanks = 1;
}
} else {
print OUTPUT;
}
} else {
print OUTPUT;
if ($. == 1 && !m/^> /) {
print OUTPUT "\n";
$blanks = 1;
} else {
$blanks = 0;
}
}
}
if (!$topgp && m/^> -----BEGIN PGP .*-----/) {
$topgp = 1;
$tmpfile = "${name}.pgp",
unlink ($tmpfile);
open (TMPFILE, ">$tmpfile") || die "Cannot open $tmpfile for output.\n";
}
if ($topgp) {
$_ =~ s/^> //;
print TMPFILE $_;
if (m/^-----END PGP .*-----/) {
$topgp = 0;
close TMPFILE;
$clrfile = "${name}.clr";
`pgp $tmpfile -o $clrfile`;
open (CLEAR, "<$clrfile") || die "Cannot open $clrfile for input.\n";
print OUTPUT "-----BEGIN OF PGP DECRYPTED TEXT-----\n\n";
while (<CLEAR>) {
if (m/^$/) {
print OUTPUT "\n";
} else {
print OUTPUT "> ";
print OUTPUT;
}
}
close CLEAR;
unlink ($clrfile);
unlink ($tmpfile);
print OUTPUT "\n-----END OF PGP DECRYPTED TEXT-----\n\n";
}
}
}
close OUTPUT;
close INPUT;
unlink ($name);
rename ("${name}.rply", "$name");
system ($visual,@ARGV);
while (!$q) {
print "Sign this message? [Y]: ";
$q = <STDIN>;
$q =~ s/[ \t\n]//g;
$q = substr ($q, 0, 1);
if (($q eq 'Y') || ($q eq 'y') || ($q eq '')) {
push(@opts,'-st','+clearsig=on');
$q = "y";
} elsif (($q ne 'N') && ($q ne 'n')) {
$q = '';
}
}
$q='';
while (!$q) {
print "Encrypt this message? [Y]: ";
$q = <STDIN>;
$q =~ s/[ \t\n]//g;
$q = substr ($q, 0, 1);
if (($q eq 'Y') || ($q eq 'y') || ($q eq '')) {
push(@opts,'-e');
$q = "y";
} elsif (($q ne 'N') && ($q ne 'n')) {
$q = '';
}
}
if (@opts) {
system ('pgp','-a',@opts,$name);
if ($? == 0) {
unlink ${name};
rename ("${name}.asc", "$name");
}
}